#include "serverXmlCreator.h"

QDomDocument serverXmlCreator::createDocument(bool lightMode)
{
	QDomDocument doc("rinstaller");
	QDomElement root = doc.createElement("rinstaller");
	QDomAttr lightModeAttr = doc.createAttribute("lightMode");
	if(lightMode)
		lightModeAttr.setNodeValue("true");
	else
		lightModeAttr.setNodeValue("false");
	root.setAttributeNode(lightModeAttr);
	doc.appendChild(root);
	return doc;
};

bool serverXmlCreator::addInstall(QDomDocument &doc, QString appName, QString size, QString joinAddr, 
		QString joinPort, QString ackAddr, QString ackPort )
{
	QDomElement elem = doc.createElement("install");
	
	QDomAttr fileName = doc.createAttribute("fileName");
	fileName.setNodeValue(appName);

	QDomAttr fileSize = doc.createAttribute("fileSize");
	fileSize.setNodeValue(size);

	QDomAttr joinAddrAttr = doc.createAttribute("joinAddr");
	joinAddrAttr.setNodeValue(joinAddr);

	QDomAttr joinPortAttr = doc.createAttribute("joinPort");
	joinPortAttr.setNodeValue(joinPort);

	QDomAttr ackAddrAttr = doc.createAttribute("ackAddr");
	ackAddrAttr.setNodeValue(ackAddr);

	QDomAttr ackPortAttr = doc.createAttribute("ackPort");
	ackPortAttr.setNodeValue(ackPort);

	elem.setAttributeNode(fileName);
	elem.setAttributeNode(joinAddrAttr);
	elem.setAttributeNode(joinPortAttr);
	elem.setAttributeNode(ackAddrAttr);
	elem.setAttributeNode(ackPortAttr);
	elem.setAttributeNode(fileSize);

	doc.documentElement().appendChild(elem);

	return true;
};


bool serverXmlCreator::addRun(QDomDocument &doc, QString appName, QString args)
{
	QDomElement elem = doc.createElement("run");

	QDomAttr appElement = doc.createAttribute("app");
	appElement.setNodeValue(appName);
	QDomAttr argsElement = doc.createAttribute("args");
	argsElement.setNodeValue(args);

	elem.setAttributeNode(appElement);
	elem.setAttributeNode(argsElement);

	doc.documentElement().appendChild(elem);

	return true;
};

bool serverXmlCreator::addStop(QDomDocument &doc, QString appName)
{
	QDomElement elem = doc.createElement("stop");

	QDomAttr appElement = doc.createAttribute("app");
	appElement.setNodeValue(appName);
	
	elem.setAttributeNode(appElement);
	
	doc.documentElement().appendChild(elem);

	return true;
};

bool serverXmlCreator::addUninstall(QDomDocument &doc, QString fileName)
{
	QDomElement elem = doc.createElement("uninstall");

	QDomAttr attr = doc.createAttribute("fileName");

	attr.setNodeValue(fileName);

	elem.setAttributeNode(attr);

	doc.documentElement().appendChild(elem);

	return true;
};

bool serverXmlCreator::addShow(QDomDocument &doc)
{
	QDomElement elem = doc.createElement("show");

	
	doc.documentElement().appendChild(elem);

	return true;
};

bool serverXmlCreator::addGetLogs(QDomDocument &doc, QStringList apps)
{
	QDomElement elem = doc.createElement("getLogs");

	for(int i=0; i < apps.size();i++)
	{
		QDomElement logElem = doc.createElement("log");
		QDomAttr logAttr = doc.createAttribute("app");
		logAttr.setNodeValue(apps[i]);
		logElem.setAttributeNode(logAttr);
		elem.appendChild(logElem);
	}


	doc.documentElement().appendChild(elem);

	return true;
};	

